package com.vhuomai.wechat.handler;

import com.vhuomai.wechat.entity.BaseWxMenu;
import com.vhuomai.wechat.service.WxMenuService;
import com.vhuomai.weixin.common.api.WxConsts;
import com.vhuomai.weixin.common.exception.WxErrorException;
import com.vhuomai.weixin.common.session.WxSessionManager;
import com.vhuomai.weixin.mp.api.WxMpMessageHandler;
import com.vhuomai.weixin.mp.api.WxMpService;
import com.vhuomai.weixin.mp.bean.message.WxMpXmlMessage;
import com.vhuomai.weixin.mp.bean.message.WxMpXmlOutMessage;
import org.springframework.beans.factory.annotation.Autowired;

import java.util.Map;

public class MenuHandler implements WxMpMessageHandler {

    @Autowired
    private WxMenuService menuService;

    @Override
    public WxMpXmlOutMessage handle(WxMpXmlMessage wxMessage, Map<String, Object> context, WxMpService wxMpService, WxSessionManager sessionManager) throws WxErrorException {
        if (WxConsts.BUTTON_CLICK.equalsIgnoreCase(wxMessage.getEvent())) {
            BaseWxMenu wxMenu = menuService.findById(Integer.valueOf(wxMessage.getEventKey()));
            return WxMpXmlOutMessage.TEXT().content(wxMenu.getContent())
                .fromUser(wxMessage.getToUser())
                .toUser(wxMessage.getFromUser())
                .build();
        }
        return null;
    }
}
